import pymysql


# 数据库中插入数据表格数据
def mysql_insert_dataForm_mysql(results):
    conn = pymysql.Connect(
        host='',  # mysql服务器地址
        port=3306,  # mysql服务器端口号
        user='root',  # 用户名
        password='',  # 密码
        db='WeChat_backstage_data',  # 数据库名
        charset='utf8mb4'  # 连接编码
    )
    cursor = conn.cursor()
    i = 0
    for result in results:
        sql_select_mysql = "SELECT * FROM Data_form_table WHERE 时间='{0}' AND 原始ID = '{1}'".format(result["时间"],
                           result["原始ID"])
        # 执行语句
        effect_row = cursor.execute(sql_select_mysql)
        # 事务提交，否则数据库得不到更新
        conn.commit()
        if effect_row == 1:
            pass
        else:
            try:
                sql_insert = """INSERT INTO Data_form_table(
                                时间,负责人,名称,微信号,原始ID,粉丝来源,类型,性别,男女率,累计关注,新增,取关,
                                净增,头条阅读数,综合阅读人数,综合阅读次数,会话阅读人数,会话阅读次数,朋友圈阅读人数,
                                朋友圈阅读次数,转发人数,转发次数,收藏人数,收藏次数,历史消息阅读次数,真实阅读,头条阅读率,
                                综合阅读率,真实阅读率,二次传播比,人均打开次数,转发率,打开率,曝光量,点击量,总收入,曝光率,
                                点击率,曝光单价,点击单价,阅读单价,粉丝单价,主体公司) values(
                                '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}',
                                '{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}',
                                '{23}','{24}','{25}','{26}','{27}','{28}','{29}','{30}','{31}','{32}','{33}',
                                '{34}','{35}','{36}','{37}','{38}','{39}','{40}','{41}','{42}')""".format(
                    result["时间"], result["负责人"], result["名称"], result["微信号"], result["原始ID"],
                    result["粉丝来源"], result["类型"], result["性别"], result["男女率"], result["累计关注"],
                    result["新增"], result["取关"], result["净增"], result["头条阅读数"], result["综合阅读人数"],
                    result["综合阅读次数"], result["会话阅读人数"], result["会话阅读次数"], result["朋友圈阅读人数"],
                    result["朋友圈阅读次数"], result["转发人数"], result["转发次数"], result["收藏人数"], result["收藏次数"],
                    result["历史消息阅读次数"], result["真实阅读"], result["头条阅读率"], result["综合阅读率"], result["真实阅读率"],
                    result["二次传播比"], result["人均打开次数"], result["转发率"], result["打开率"], result["曝光量"],
                    result["点击量"], result["总收入"], result["曝光率"], result["点击率"], result["曝光单价"], result["点击单价"],
                    result["阅读单价"], result["粉丝单价"], result["主体公司"])
                # 执行语句
                cursor.execute(sql_insert)
                # 事务提交，否则数据库得不到更新
                conn.commit()
                i += 1
                print("数据表格 数据入库 {0}条".format(i))
            except:
                # Rollback in case there is any error
                conn.rollback()
    cursor.close()
    conn.close()


# 违规表格 数据入库
def mysql_insert_violation_data_table_mysql(results):
    conn = pymysql.Connect(
        host='',  # mysql服务器地址
        port=3306,  # mysql服务器端口号
        user='root',  # 用户名
        password='',  # 密码
        db='WeChat_backstage_data',  # 数据库名
        charset='utf8mb4'  # 连接编码
    )
    cursor = conn.cursor()
    i = 0
    for result in results:
        sql_select_mysql = "SELECT * FROM Violation_data_table WHERE 时间='{0}' AND 原始ID = '{1}'".format(
            result["时间"], result["原始ID"])
        # 执行语句
        effect_row = cursor.execute(sql_select_mysql)
        # 事务提交，否则数据库得不到更新
        conn.commit()
        if effect_row == 1:
            pass
        else:
            try:
                sql_insert = """INSERT INTO Violation_data_table(时间,负责人, 名称, 微信号, 原始ID, 粉丝来源, 类型, 性别, 累计关注,
                违规类型, 违规内容, 违规处理, 是否封禁, 主体公司)VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}',
                '{9}','{10}','{11}','{12}','{13}')""".format(
                    result["时间"], result["负责人"], result["名称"], result["微信号"], result["原始ID"], result["粉丝来源"],
                    result["类型"], result["性别"], result["累计关注"], result["违规类型"], result["违规内容"], result["违规处理"],
                    result["是否封禁"], result["主体公司"], )
                # 执行语句
                cursor.execute(sql_insert)
                # 事务提交，否则数据库得不到更新
                conn.commit()
                i += 1
                print("违规表格 数据入mysql库 {0}条".format(i))
            except:
                # Rollback in case there is any error
                conn.rollback()
    cursor.close()
    conn.close()


# 流量主表格 数据入库
def mysql_insert_Flow_master_data_table(results):
    conn = pymysql.Connect(
        host='',  # mysql服务器地址
        port=3306,  # mysql服务器端口号
        user='root',  # 用户名
        password='',  # 密码
        db='WeChat_backstage_data',  # 数据库名
        charset='utf8mb4'  # 连接编码
    )
    cursor = conn.cursor()
    i = 0
    for result in results:
        sql_select_mysql = "SELECT * FROM Flow_master_data_table WHERE 时间='{0}' AND 原始ID = '{1}'".format(
            result["时间"], result["原始ID"])
        # 执行语句
        effect_row = cursor.execute(sql_select_mysql)
        # 事务提交，否则数据库得不到更新
        conn.commit()
        if effect_row == 1:
            pass
        else:
            try:
                sql_insert_mysql = """INSERT INTO Flow_master_data_table( 时间, 主体公司, 负责人, 名称, 微信号, 原始ID, 
                粉丝来源, 类型, 性别, 账户收入)VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')""".format(
                    result["时间"], result["主体公司"], result["负责人"], result["名称"], result["微信号"], result["原始ID"],
                    result["粉丝来源"], result["类型"], result["性别"], result["账户收入"])
                # 执行语句
                cursor.execute(sql_insert_mysql)
                # 事务提交，否则数据库得不到更新
                conn.commit()
                i += 1
                print("流量主表格 数据入mysql库 {0}条".format(i))
            except:
                # Rollback in case there is any error
                conn.rollback()
    cursor.close()
    conn.close()


# 广告主表格 数据入库
def mysql_insert_Advertiser_data_table(results):
    conn = pymysql.Connect(
        host='',  # mysql服务器地址
        port=3306,  # mysql服务器端口号
        user='root',  # 用户名
        password='',  # 密码
        db='WeChat_backstage_data',  # 数据库名
        charset='utf8mb4'  # 连接编码
    )
    cursor = conn.cursor()
    i = 0
    for result in results:
        sql_select_mysql = "SELECT * FROM Advertiser_data_table WHERE 时间='{0}' AND 原始ID = '{1}'".format(result["时间"],
                                                                                                        result["原始ID"])
        # 执行语句
        effect_row = cursor.execute(sql_select_mysql)
        # 事务提交，否则数据库得不到更新
        conn.commit()
        if effect_row == 1:
            pass
        else:
            try:
                sql_insert_mysql = """INSERT INTO Advertiser_data_table(时间, 负责人, 名称, 微信号, 原始ID, 粉丝来源, 类型, 性别, 
                                    累计关注,服务商, 金额, 主体公司) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',
                                    '{8}','{9}','{10}','{11}')""".format(
                    result["时间"], result["负责人"], result["名称"], result["微信号"], result["原始ID"], result["粉丝来源"],
                    result["类型"], result["性别"], result["累计关注"], result["服务商"], result["金额"], result["主体公司"])

                # 执行语句
                cursor.execute(sql_insert_mysql)
                # 事务提交，否则数据库得不到更新
                conn.commit()
                i += 1
                print("广告主表格 数据入mysql库 {0}条".format(i))
            except:
                # Rollback in case there is any error
                conn.rollback()
    cursor.close()
    conn.close()


# 12小时 阅读对比 数据入库
def mysql_insert_reading_comparison_12_hour_table(results):
    conn = pymysql.Connect(
        host='',  # mysql服务器地址
        port=3306,  # mysql服务器端口号
        user='root',  # 用户名
        password='',  # 密码
        db='WeChat_backstage_data',  # 数据库名
        charset='utf8mb4'  # 连接编码
    )
    cursor = conn.cursor()
    i = 0
    for result in results:
        sql_select_mysql = "SELECT * FROM reading_comparison_12_hour WHERE 时间='{0}' AND 原始ID = '{1}'".format(
            result["时间"], result["原始ID"])
        # 执行语句
        effect_row = cursor.execute(sql_select_mysql)
        # 事务提交，否则数据库得不到更新
        conn.commit()
        if effect_row == 1:
            pass
        else:
            try:
                sql_insert_mysql = """INSERT INTO reading_comparison_12_hour(时间 ,主体公司,负责人,名称,微信号,原始ID,
                 粉丝来源, 类型, 性别, 累计关注, 图文发送时间,1条标题,1条阅读	,2条标题	,2条阅读	,3条标题	,3条阅读	,4条标题	,4条阅读,
                 5条标题	,5条阅读	,6条标题,6条阅读	,7条标题	,7条阅读,8条标题,8条阅读)VALUES
                  ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',
                  '{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}','{24}','{25}','{26}')""".format(
                    result["时间"], result["主体公司"], result["负责人"], result["名称"], result["微信号"], result["原始ID"],
                    result["粉丝来源"], result["类型"], result["性别"], result["累计关注"], result["图文发送时间"], result["1条标题"],
                    result["1条阅读"], result["2条标题"], result["2条阅读"], result["3条标题"], result["3条阅读"], result["4条标题"],
                    result["4条阅读"], result["5条标题"], result["5条阅读"], result["6条标题"], result["6条阅读"], result["7条标题"],
                    result["7条阅读"], result["8条标题"], result["8条阅读"])
                # 执行语句
                cursor.execute(sql_insert_mysql)
                # 事务提交，否则数据库得不到更新
                conn.commit()
                i += 1
                print("12小时 阅读对比 数据入mysql库 {0}条".format(i))
            except:
                # Rollback in case there is any error
                conn.rollback()
    cursor.close()
    conn.close()


# 36小时 阅读对比 数据入库
def mysql_insert_reading_comparison_36_hour_table(results):
    conn = pymysql.Connect(
        host='',  # mysql服务器地址
        port=3306,  # mysql服务器端口号
        user='root',  # 用户名
        password='',  # 密码
        db='WeChat_backstage_data',  # 数据库名
        charset='utf8mb4'  # 连接编码
    )
    cursor = conn.cursor()
    i = 0
    for result in results:
        sql_select_mysql = "SELECT * FROM reading_comparison_36_hour WHERE 时间='{0}' AND 原始ID = '{1}'".format(
            result["时间"], result["原始ID"])
        # 执行语句
        effect_row = cursor.execute(sql_select_mysql)
        # 事务提交，否则数据库得不到更新
        conn.commit()
        if effect_row == 1:
            pass
        else:
            try:
                sql_insert_mysql = """INSERT INTO reading_comparison_36_hour(
                    时间 , 主体公司, 负责人, 名称,微信号, 原始ID,	粉丝来源	,类型,性别,	累计关注,图文发送时间,1条标题	,1条阅读,
                    2条标题	,2条阅读	,3条标题	,3条阅读	,4条标题	,4条阅读	,5条标题	,5条阅读	,6条标题,6条阅读,7条标题,7条阅读,
                    8条标题,8条阅读)VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}',
                    '{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}',
                    '{24}','{25}','{26}')""".format(
                    result["时间"], result["主体公司"], result["负责人"], result["名称"], result["微信号"], result["原始ID"],
                    result["粉丝来源"], result["类型"], result["性别"], result["累计关注"], result["图文发送时间"],
                    result["1条标题"], result["1条阅读"], result["2条标题"], result["2条阅读"], result["3条标题"],
                    result["3条阅读"], result["4条标题"], result["4条阅读"], result["5条标题"], result["5条阅读"],
                    result["6条标题"], result["6条阅读"], result["7条标题"], result["7条阅读"],
                    result["8条标题"], result["8条阅读"])

                # 执行语句
                cursor.execute(sql_insert_mysql)
                # 事务提交，否则数据库得不到更新
                conn.commit()
                i += 1
                print("36小时 阅读对比 数据入mysql库 {0}条".format(i))
            except:
                # Rollback in case there is any error
                conn.rollback()
    cursor.close()
    conn.close()